December 3, 2025
1992: Robert Gentleman and Ross Ihaka develop an early version of R for teaching.
1995: Martin Mächler (ETH Zurich) persuades Robert and Ross to release R under a GNU public license.
… User community grows to millions world wide…
30 years as an open source project: How can the community help to sustain R?
By default, messages, warnings and errors are shown in the current locale.
The language can be changed with Sys.setLanguage:
The Weblate instance at https://translate.rx.studio provides a user-friendly interface for contributing translations.
Enter the translation and “Suggest” (if unsure) or “Save and continue” (if confident).
Sidebar shows alerts and any relevant terms from glossary.
Top: Translators on Weblate. Bottom: Translators at LatinR 2023
Contributors can help in several ways:
Warning
Contributions on the right require building R from source
Caution
Can be a big time sink for ad-hoc contributors!
The R Dev Container provides a development environment that can be run in the browser:
Bugs and feature requests a tracked on R’s Bugzilla https://bugs.r-project.org
Bug 7084 is an example of a good first issue:
text() recycles coordinate pairs when there are more labels than points
text()text.default()debugging in: text.default(1:2, 2:4, LETTERS[1:4])
debug: {
if (!missing(y) && (is.character(y) || is.expression(y))) {
labels <- y
y <- NULL
}
x <- xy.coords(x, y, recycle = TRUE, setLab = FALSE)
labels <- as.graphicsAnnot(labels)
if (!is.null(vfont))
vfont <- c(typeface = pmatch(vfont[1L], Hershey$typeface),
fontindex = pmatch(vfont[2L], Hershey$fontindex))
.External.graphics(C_text, x, labels, adj, pos, offset, vfont,
cex, col, font, ...)
invisible()
}
Browse[1]>
debug: if (!missing(y) && (is.character(y) || is.expression(y))) {
labels <- y
y <- NULL
}
Browse[1]>
debug: x <- xy.coords(x, y, recycle = TRUE, setLab = FALSE)
Browse[1]>
debug: labels <- as.graphicsAnnot(labels)
Browse[1]>
Browse[1]> x
$x
[1] 1 2 1
$y
[1] 2 3 4
$xlab
NULL
$ylab
NULL
nx rather than the original arguments